package com.xmut.mall.store.dto;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.*;

@Data
public class AdminStoreApplyDTO {
    /****店铺基本信息***/
    public String memberId; //会员ID

    @Size(min = 2, max = 200, message = "店铺名称长度为2-200位")
    @NotBlank(message = "店铺名称不能为空")
    private String storeName; // 店铺名称

    private String storeLogo; // 店铺logo

    @Size(min = 6, max = 200, message = "店铺简介需在6-200字符之间")
    @NotBlank(message = "店铺简介不能为空")
    private String storeDesc; // 店铺简介

    private String storeCenter; // 经纬度

    private String goodsManagementCategory; // 店铺经营类目

    private Boolean selfOperated; // 是否自营

    private String storeAddressPath; // 地址名称， '，'分割

    private String storeAddressIdPath; // 地址id，'，'分割

    private String storeAddressDetail; // 详细地址

    /****公司基本信息***/
    @NotBlank(message = "公司名称不能为空")
    @Size(min = 2, max = 100, message = "公司名称错误")
    private String companyName; //公司名称

    private String companyPhone; // 公司电话

    @NotBlank(message = "公司地址不能为空")
    @Size(min = 1, max = 200, message = "公司地址,长度为1-200字符")
    private String companyAddress; //公司地址

    private String companyAddressIdPath; // 公司地址地区Id

    private String companyAddressPath; // 公司地址地区

    private String employeeNum; // 员工总数

    @Min(value = 1, message = "注册资金,至少一位")
    private Double registeredCapital; // 注册资金

    @NotBlank(message = "联系人姓名为空")
    @Length(min = 2, max = 20, message = "联系人长度为：2-20位字符")
    private String linkName; // 联系人姓名

    @NotBlank(message = "手机号不能为空")
    @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")
    private String linkPhone; //联系人电话

    @Email
    private String companyEmail; // 电子邮箱


    /****营业执照信息***/
    @Size(min = 18, max = 18, message = "营业执照长度为18位字符")
    private String licenseNum; // 营业执照号

    private String scope; // 法定经营范围

    @NotBlank(message = "营业执照电子版不能为空")
    private String licencePhoto; // 营业执照电子版

    /****法人信息***/
    @NotBlank(message = "法人姓名不能为空")
    @Size(min = 2, max = 20, message = "法人姓名长度为2-20位字符")
    private String legalName; //法人姓名

    @NotBlank(message = "法人身份证不能为空")
    @Size(min = 18, max = 18, message = "法人身份证号长度为18位")
    private String legalId; // 法人身份证

    @NotBlank(message = "法人身份证不能为空")
    private String legalPhoto; // 法人身份证照片

    /****结算银行信息***/
    @Size(min = 1, max = 200, message = "结算银行开户行名称长度为1-200位")
    @NotBlank(message = "结算银行开户行名称不能为空")
    private String settlementBankAccountName; // 结算银行开户行名称

    @Size(min = 1, max = 200, message = "结算银行开户账号长度为1-200位")
    @NotBlank(message = "结算银行开户账号不能为空")
    private String settlementBankAccountNum; //结算银行开户账号

    @Size(min = 1, max = 200, message = "结算银行开户支行名称长度为1-200位")
    @NotBlank(message = "结算银行开户支行名称不能为空")
    private String settlementBankBranchName; // 结算银行开户支行名称

    @Size(min = 1, max = 50, message = "结算银行支行联行号长度为1-200位")
    @NotBlank(message = "结算银行支行联行号不能为空")
    private String settlementBankJointName; // 结算银行支行联行号

    /****店铺退货收件地址***/
    private String salesConsigneeName; // 收货人姓名

    private String salesConsigneeMobile; // 收件人手机

    private String salesConsigneeAddressId; // 地址Id， '，'分割

    private String salesConsigneeAddressPath; // 地址名称， '，'分割

    private String salesConsigneeDetail; // 详细地址


    /****配送信息***/
    private String ddCode; // 同城配送达达店铺编码

    /****结算周期***/
    private String settlementCycle; // 结算周期
}
